Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Adds configurable redirects via
config/redirects.php
that are only parsed just before serving a 404, so there isn't any added work for normal route/controller requests.By default, redirects are 302 (temporary) and match the full request path (
Craft::$app->getRequest()->getFullPath()
) with leading and trailing slashes removed. What is matched can be configured via\craft\web\Redirect::match
, which is a callback that takes a\Psr\Http\Message\UriInterface
of the URL.Also provides a
\craft\web\ErrorHandler::EVENT_BEFORE_REDIRECT
event, should any plugins want to know about a handled redirect.Note: for future-proofing, named capture group replacement uses PHP/PCRE's native syntax (
(?<name>group)
) and NOT Yii's similar but different route syntax ((?<name:group)>
).